package org.batatasframework.support.database.sql.field;

import org.batatasframework.support.database.metadatas.FieldMetadata;
import org.batatasframework.support.database.sql.TableInstance;

/**
 * 可溯源的一个字段
 * @author jackson
 *
 */
public interface FieldSourcable {
	
	/** 对应的源字段 */
	FieldMetadata getSourceField();
	
	/** 目标表 ，可能是主表，也可能是关联表，所以这里应该是另一个接口*/
	TableInstance getTargetTable();

	/**
	 * <pre>
	 * 格式为：alias.name
	 * 
	 * alias = table alias
	 * name  = field name
	 * 
	 * 如果是子查询，则可能返回：(select a from b where )
	 * </pre>
	 */
	String getColumnName();
}
